Лабораторная работа № 3.

Настройка DHCP-сервера

Cадова Д. А.

Российский университет дружбы народов, Москва, Россия

Информация

Докладчик

  • Садова Диана Алексеевна
  • студент бакалавриата
  • Российский университет дружбы народов
  • [113229118@pfur.ru]
  • https://DianaSadova.github.io/ru/

Вводная часть

Актуальность

  • Понимание как устроен DHCP-сервера
  • Умение его подключать

Цели и задачи

  • Приобретение практических навыков по установке и конфигурированию DHCP-сервера

Материалы и методы

  • Текст лабороторной работы № 3
  • Интернет для исправления ошибок

Содержание исследования

  1. Установите на виртуальной машине server DHCP-сервер.

  2. Настройте виртуальную машину server в качестве DHCP-сервера для виртуальной внутренней сети.

  3. Проверьте корректность работы DHCP-сервера в виртуальной внутренней сети путём запуска виртуальной машины client и применения соответствующих утилит диагностики.

  1. Настройте обновление DNS-зоны при появлении в виртуальной внутренней сети новых узлов.

  2. Проверьте корректность работы DHCP-сервера и обновления DNS-зоны в виртуальной внутренней сети путём запуска виртуальной машины client и применения соответствующих утилит диагностики.

  3. Напишите скрипт для Vagrant, фиксирующий действия по установке и настройке DHCP-сервера во внутреннем окружении виртуальной машины server. Соответствующим образом внести изменения в Vagrantfile.

Установка DHCP-сервера

  • Запустите виртуальную машину server:
Запускаем виртуальную машину

  • На виртуальной машине server войдите под вашим пользователем и откройте терминал. Перейдите в режим суперпользователя:
Заходим в режим суперпользователя

  • Установите dhcp:
Установливаем dhcp

  • Сохраните на всякий случай конфигурационный файл:
Сохраняем конфигурационный файл

  • Откройте файл /etc/kea/kea-dhcp4.conf на редактирование. В этом файле: замените шаблон для domain-name
Заменяем шаблон

Заменяем шаблон

  • на базе одного из приведённых в файле примеров конфигурирования подсети задайте собственную конфигурацию dhcp-сети, задав адрес подсети, диапазон адресов для распределения клиентам, адрес маршрутизатора и broadcast-адрес:
Заменяем шаблон

  • Настройте привязку dhcpd к интерфейсу eth1 виртуальной машины server:
Настраиваем привязку dhcpd к интерфейсу eth1

  • Проверьте правильность конфигурационного файла:
Проверяем

  • Перезагрузите конфигурацию dhcpd и разрешите загрузку DHCP-сервера при запуске виртуальной машины server:
Перезагружаем конфигурацию dhcpd

  • Добавьте запись для DHCP-сервера в конце файла прямой DNS-зоны /var/named/master/fz/user.net:
Добавляем запись для DHCP-сервера

и в конце файла обратной зоны /var/named/master/rz/192.168.1:

Добавляем запись для DHCP-сервера

  • Перезапустите named:
Перезапускаем named

  • Проверьте, что можно обратиться к DHCP-серверу по имени:
Обращаемся к DHCP-серверу

  • Внесите изменения в настройки межсетевого экрана узла server, разрешив работу с DHCP:
Вносим изменения

  • Восстановите контекст безопасности в SELinux:
Востанавливаем контекст безопасности в SELinux

  • В дополнительном терминале запустите мониторинг происходящих в системе процессов в реальном времени:
Запускаем мониторинг

  • В основном рабочем терминале запустите DHCP-сервер:
Запускаем DHCP-сервер

Анализ работы DHCP-сервера

  1. Перед запуском виртуальной машины client в каталоге с проектом в вашей операционной системе в подкаталоге vagrant/provision/client создайте файл 01-routing.sh. Открыв его на редактирование, пропишите в нём следующий скрипт:
Переписываем 01-routing.sh

  1. В Vagrantfile подключите этот скрипт в разделе конфигурации для клиента:
Переписываем Vagrantfile

  1. Зафиксируйте внесённые изменения для внутренних настроек виртуальной машины client и запустите её, введя в терминале: vagrant up client –provision.

  2. После загрузки виртуальной машины client вы можете увидеть на виртуальной машине server на терминале с мониторингом происходящих в системе процессов записи о подключении к виртуальной внутренней сети узла client и выдачи ему IP-адреса из соответствующего диапазона адресов. Также информацию о работе DHCP-сервера можно наблюдать в файле /var/lib/kea/kea-leases4.csv.

  1. Войдите в систему виртуальной машины client под вашим пользователем и откройте терминал. В терминале введите
Заходим в client

Система имеет три сетевых интерфейса - eth0, eth1 и loopback (lo). Интерфейс eth1 соответствует записям из DHCP-сервера.

Интерфейс eth0:

  • flags=4163<UP,BROADCAST,RUNNING,MULTICAST> - интерфейс активен, поддерживает широковещание и multicast

  • inet 10.0.2.15 - IPv4 адрес (вероятно NAT-интерфейс VirtualBox)

  • netmask 255.255.255.0 - маска подсети класса C

  • broadcast 10.0.2.255 - широковещательный адрес

  • inet6 fe80::a00:27ff:fe69:a8d - link-local IPv6 адрес

  • inet6 fdl7:625c:f037:2:a00:27ff:fe69:a8d - глобальный IPv6 адрес (с ошибкой в записи)

  • ether 08:00:27:69:0a:8d - MAC-адрес интерфейса

Интерфейс eth1 (основной интерес):

  • flags=4163<UP,BROADCAST,RUNNING,MULTICAST> - интерфейс активен

  • inet 192.168.1.30 - IPv4 адрес, совпадает с арендой из DHCP-сервера

  • netmask 255.255.255.0 - маска подсети

  • broadcast 192.168.1.255 - широковещательный адрес

  • inet6 fe80::a00:27ff:fe22:9ad6 - link-local IPv6 адрес

  • ether 08:00:27:22:9a:d6 - MAC-адрес, полностью совпадает с записью в DHCP: 08:00:27:22:9a:d6

Интерфейс lo (loopback):

  • flags=73<UP,LOOPBACK,RUNNING> - loopback интерфейс активен

  • inet 127.0.0.1 - стандартный loopback адрес

  • netmask 255.0.0.0 - маска класса A

  • inet6 ::1 - IPv6 loopback адрес

  1. На машине server посмотрите список выданных адресов:
Просматриваем список выданных адресов

Файл /var/lib/kea/kea-leases4.csv содержит историю аренды IPv4 адресов сервером Kea DHCP.

Строка 1-2: Заголовок с полями:

  • address - IP-адрес

  • hwaddr - MAC-адрес клиента

  • client_id - идентификатор клиента

  • valid_lifetime - время жизни аренды (секунды)

  • expire - timestamp истечения аренды

  • subnet_id - ID подсети

  • fqdn_fwd, fqdn_rev - флаги DNS-записей

  • hostname - имя хоста

  • state - состояние аренды

  • user_context, pool_id - дополнительные параметры

Строка 3: 192.168.1.30,08:00:27:22:9a:d6,01:08:00:27:22:9a:d6,3600,1758359296,1,0,0,,client,0,,0

Адрес: 192.168.1.30. MAC: 08:00:27:22:9a:d6 (вероятно виртуальная машина VirtualBox). Время жизни: 3600 секунд (1 час). Истекает: 1758359296 (Unix timestamp). Подсеть: ID 1. Имя хоста: client. Состояние: 0 (активная/нормальная аренда)

Строка 4: 192.168.1.30,08:00:27:22:9a:d6,01:08:00:27:22:9a:d6,3600,1758359879,1,0,0,,client,0,,0

Обновление аренды того же клиента. Новое время истечения: 1758359879. Увеличение времени аренды

Строка 5: 192.168.1.30,08:00:27:22:9a:d6,01:08:00:27:22:9a:d6,3600,1758359885,1,0,0,,client,0,,0

Настройка обновления DNS-зоны

  1. Создадим ключ на сервере с Bind9 (на виртуальной машине server):
Создаем ключ

  1. Файл /etc/named/keys/dhcp_updater.key будет иметь следующий вид:
Просматриваем ключ

  1. Поправим права доступа:
Меняем права доступа

  1. Подключим ключ в файле /etc/named.conf:
Подключаем ключ

  1. На виртуальной машине server под пользователем с правами суперпользователя отредактируйте файл /etc/named/user.net (вместо user укажите свой логин), разрешив обновление зоны:
Обнавляем зоны

  1. Сделаем проверку конфигурационного файла:
Проверка конфигурационного файла

  1. Перезапустите DNS-сервер:
Перезагружаем DNS-сервер

  1. Сформируем ключ для Kea. Файл ключа назовём /etc/kea/tsig-keys.json:
Формируем ключ

  1. Перенесём ключ на сервер Kea DHCP и перепишем его в формате json:
Переносим ключ на сервер

  1. Сменим владельца:
Меняем владельца

  1. Поправим права доступа:
Меняем права доступа

  1. Настройка происходит в файле /etc/kea/kea-dhcp-ddns.conf:
Настраиваем

  1. Изменим владельца файла:
Меняем владельца

  1. Проверим файл на наличие возможных синтаксических ошибок:
Проверяем файл

  1. Запустим службу ddns:
Запускаем службу

  1. Проверим статус работы службы:
Проверяем статус

  1. Внесите изменения в конфигурационный файл /etc/kea/kea-dhcp4.conf, добавив в него разрешение на динамическое обновление DNS-записей с локального узла прямой и обратной зон:
Вносим изменения в файл

  1. Проверим файл на наличие возможных синтаксических ошибок:
Проверяем статус

  1. Перезапустите DHCP-сервер:
Перезапускаем сервер

  1. Проверим статус:
Проверяем статус

  1. На машине client переполучите адрес:
На client получаем адрес

  1. В каталоге прямой DNS-зоны /var/named/master/fz должен появиться файл user.net.jnl, в котором в бинарном файле автоматически вносятся изменения записей зоны.
Проверяем наличие файла

Анализ работы DHCP-сервера после настройки обновления DNS-зоны

На виртуальной машине client под вашим пользователем откройте терминал и с помощью утилиты dig убедитесь в наличии DNS-записи о клиенте в прямой DNS-зоне:

Убедимся в наличии DNS-записи о клиенте в прямой DNS-зоне

  • opcode: QUERY - тип операции: запрос

  • status: NOERROR - успешное выполнение

  • id: 60274 - идентификатор запроса

  • flags: qr aa rd ra - флаги: qr - это ответ (query response), aa - авторитетный ответ (authoritative answer), rd - рекурсия запрошена (recursion desired), ra - рекурсия доступна (recursion available)

Секция QUESTION:

  • client.dsadova.net. IN A - запрос IPv4 адреса для client.dsadova.net

Секция ANSWER:

  • client.dsadova.net. 1200 IN A 192.168.1.30 - ключевой результат!

  • Время жизни записи: 1200 секунд (20 минут)

  • Класс: IN (Internet)

  • Тип: A (IPv4 адрес)

  • Адрес: 192.168.1.30 - полностью совпадает с DHCP-арендой

Внесение изменений в настройки внутреннего окружения виртуальной машины

  1. На виртуальной машине server перейдите в каталог для внесения изменений в настройки внутреннего окружения /vagrant/provision/server/, создайте в нём каталог dhcp, в который поместите в соответствующие подкаталоги конфигурационные файлы DHCP:
Создаем каталог dhcp

  1. Замените конфигурационные файлы DNS-сервера:
Переписываем файлы DNS-сервера

  1. В каталоге /vagrant/provision/server создайте исполняемый файл dhcp.sh. Открыв его на редактирование, пропишите в нём следующий скрипт:
Создаем исполняемый файл dhcp.sh

  1. Для отработки созданного скрипта во время загрузки виртуальной машины server в конфигурационном файле Vagrantfile необходимо добавить в разделе конфигурации для сервера:
Переписываем файл Vagrantfile

Результаты

  • Приобрели практические навыки по установке и конфигурированию DHCP-сервера. Решили проблемы и неисправности при настройке и конфигурированию DHCP-сервера.